package com.example.myblog.service.blog;

import com.example.myblog.dao.BlogRespository;
import com.example.myblog.domain.Blog;
import com.example.myblog.service.blog.BlogService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;

/**
 * @Author: Wu YunXia
 * @Description: 逻辑类
 * @Date: Created in 16:07 2020/11/10
 * @Modefied By:
 */
@Service
public class BlogServiceImpl implements BlogService {
    @Resource
    private BlogRespository blogRespository;


    /**
    * @desc: 添加
    */
    @Override
    public Blog save(Blog blog) {
        return blogRespository.save(blog);
    }


    /**
    * @desc: 删除
    */
    @Override
    public boolean deleteById(Integer id) {
        boolean result = true;
        try{
            blogRespository.deleteById(id);
        } catch (Exception e) {
            result = false;
        }
        return result;
    }


    /**
    * @desc: 修改
    */
    @Override
    public Blog edit(Blog blog) {
        return blogRespository.save(blog);
    }


    /**
    * @desc: 根据关键字查询
    */
    @Override
    public List<Blog> findByTitleLike(String keyword,int uid) {
        Optional<List<Blog>> optional = Optional.ofNullable(blogRespository.findByTitleLikeAndUid(keyword,uid));
        if(optional != null && optional.isPresent()){
            return blogRespository.findByTitleLikeAndUid(keyword,uid);
        }
        return null;
    }


    /**
    * @desc: 查询全部
     * @return
    */
    @Override
    public List<Blog> findAll() {
        return blogRespository.findAll();
    }



    /**
    * @desc: 根据id查询
    */
    @Override
    public Blog findById(Integer id) {
        //判断id 是否为空
        Optional<Blog> optional = blogRespository.findById(id);
        if(optional != null && optional.isPresent()){
            return blogRespository.findById(id).get();
        }
        return null;
    }


//    /**
//    * @desc: 根据id查询
//    */
//    @Override
//    public List<Blog> findByIds(Integer id) {
//        //判断id 是否为空
//        Optional<Blog> optional = blogRespository.findById(id);
//        if(optional != null && optional.isPresent()){
//            return (List<Blog>) blogRespository.findById(id).get();
//        }
//        return null;
//    }


    /**
    * @desc: 根据id查询
    */
    @Override
    public List<Blog> findAllByUid(Integer uid) {
        System.out.println("uid::"+uid);
        //判断id 是否为空
        Optional<List<Blog>> optional = Optional.ofNullable(blogRespository.findAllByUid(uid));
        if(optional != null && optional.isPresent()){
            return  blogRespository.findAllByUid(uid);
        }
        return null;
    }

}
